package com.nut.lmsc.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nut.lmsc.api.req.CancelOrderReq;
import com.nut.lmsc.api.req.OrderQueryReq;
import com.nut.lmsc.api.req.OrderReq;
import com.nut.lmsc.api.resp.SubmitOrderResp;
import com.nut.lmsc.common.Result;
import com.nut.lmsc.entity.Order;
import com.nut.lmsc.interceptor.MerchantJwt;

import java.math.BigDecimal;
import java.util.Set;

public interface OrderService {

    BigDecimal THOUSAND = new BigDecimal(1000);

    Result<IPage<Order>> listPage(OrderQueryReq req);

    Result updateById(Order order);

    Result deleteByIds(Set<Integer> ids);

    Result<SubmitOrderResp> submit(OrderReq orderReq);

    /**
     * 订单详情
     * @param orderId
     * @return
     */
    Result<Order> detail(String orderId);

    /**
     * 查询订单金额
     * @param orderId
     * @return
     */
    Result<Integer> queryMoney(String orderId);

    /**
     * 取消订单
     * @param req
     * @return
     */
    Result cancel(CancelOrderReq req);

    /**
     * 查询订单状态
     * @param orderId
     * @return
     */
    Result queryStatus(String orderId);

    /**
     * 配送
     * @param orderId
     * @param merchantJwt
     * @return
     */
    Result send(String orderId, MerchantJwt merchantJwt);

    /**
     * @param orderId
     * @return
     */
    Result confirm(String orderId);


}